package com.wangshouyu.log.print;

import com.wangshouyu.log.enums.LogLevel;

import java.lang.reflect.Method;

/**
 * @author 王守钰
 * @date 2020年12月08日 12:22
 * @description 请求日志打印
 */
public interface LogPrint {

    /**
     * 请求日志
     * @param logLevel 日志级别
     * @param method 方法
     * @param arguments 参数
     * @param parameterNames 参数名
     */
    void request(LogLevel logLevel, Method method, Object[] arguments, String[] parameterNames);

    /**
     * 响应日志
     * @param logLevel 日志级别
     * @param object 结果
     */
    void result(LogLevel logLevel, Object object);

    /**
     * 慢方法日志
     * @param logLevel 日志级别
     * @param method 方法
     * @param execTime 执行时间
     */
    void slow(LogLevel logLevel, String method, Long execTime);
}
